pythonの基本②-3 if文(if, else, elif)

前の項目のこのコードを思い出してください

if mode == "creative":
    damege = 0
else:
    damege = 10

print(f"ダメージは{0}")

このコードの大きな問題点として

というのがあります。マイクラのモードは他に、サバイバルモード、アドベンチャーモードがあります。

それぞれのゲームモードの特徴をprint()するようにしてみましょう。

survival サバイバル ダメージを食らう
creativve クリエイティブ ダメージをくらわない
アイテムをなんでも持ってる
adventure アドベンチャー ブロックをこわせない

ifは「もし」elseは「そうじゃないとき」なので、これではクリエイティブモードかどうかしか判定できません。

elif : そうじゃなくてもし~なら

if とelseのプログラムに、条件をつけくわえるelifというのがあります。

これ、英語のelse if の略で、elseとifが合体したものです。

これをifとelseの間に挟むことで、条件が1つしかなかったif文に、2つ目、3つ目の条件を追加することができるんです。

マイクラゲームモードのコードを、elifを用いて書いてみましょう

image.svg

elif の書き方

elif の書き方は、

ということ以外は、ifと全く同じで、ifの前にelがついているだけです。

これで、1つしか条件が判定できなかったのが、2つでも3つでも条件を足せるようになりました!

<練習問題>

以下のコードにif文を追加して、

とprintされるようにしましょう。

number = input("1から3までの数字を半角で入力してください: ")

# ここにコードを追加

※inputについて

はじめて出てくるinput()というのがあります。実行すると、ターミナルに( )の中の文字が出てきて、その文字の隣に入力できるようになっています。

数字を入力してエンターキーを押すと、numberという変数に、入力した数字が入り、それによってif文の処理が変わってきます。
つまり、上の問題のコードを実行すると、こんなかんじの動きになります。
今後めちゃくちゃ使うのでおぼえといてね!!

Animation2.svg

<参考>最後のelse, いる?

例えば、1,2,3しか入力してはいけないプログラムで、4と答えたらどうなるでしょう??

number = input("1から3までの数字を半角で入力してください: ")

if number == "1":
    print("ええやん!")

elif number == "2":
    print("めっちゃええやん!!")

elif number == "3":
    print("メチャメチャええやん!!!")

このコードで、4と入力したとき、何も出力されずにプログラムが終了します。

コードを書いているみなさんなら、「そらそうなるわな」と思うかもしれませんが、プログラムを知らない、このアプリを使う人の気持ちになると、何も出ずにアプリが終了すると不安になります。

なにが行けなかったのかを、elseを使って伝えてあげる事ができます。ユーザーが間違った操作をしたときや、アプリが想定していない動きをしたときに、アプリをいきなり終了させたり、エラーでフリーズさせたりしないように対策することを、「エラーハンドリング」といいます。

number = input("1から3までの数字を半角で入力してください: ")

if number == "1":
    print("ええやん!")

elif number == "2":
    print("めっちゃええやん!!")

elif number == "3":
    print("メチャメチャええやん!!!")

else:
    print("1から3の半角数字言うとるやんけ!聞いとんのか!!")

Animation3.svg